Modeling languages may be used as meta-languages to describe and execute underlying processes, such as business processes. For example, process modeling languages allow an enterprise to describe tasks of a process, and to automate performance of those tasks in a desired order to achieve a desired result. For instance, the enterprise may implement a number of business software applications, and process modeling may allow coordination of functionalities of these applications, including communications (e.g., messages) between the applications, to achieve a desired result. Further, such process modeling generally relies on language that is common to, and/or interoperable with, many types of software applications and/or development platforms. As a result, process modeling may be used to provide integration of business applications both within and across enterprise organizations.
One application of process modeling includes the routing of messages among a plurality of recipients. For example, a process model may specify that a message be sent to a first recipient, and then to any two other recipients prepared to receive the message in parallel, and then to a sequence of two or more other recipients. The process model may thus ensure the specified order, and may be updated as the message is sent and/or received by each of the recipients. Thus, using process models for routing messages may provide many of the benefits of process modeling in the message routing realm, such as, for example, the automation, flexibility, and reliability that are associated with process modeling.